 package com.frossini.proyectologin;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.frossini.proyectologin.R.id;
import com.frossini.proyectologin.adapter.ClientesAdapter;
import com.frossini.proyectologin.adapter.TareasAdapter;
import com.frossini.proyectologin.dataprovider.DataProvider;
import com.frossini.proyectologin.model.Cliente;
import com.frossini.proyectologin.model.ExtraKeys;
import com.frossini.proyectologin.model.Tarea;
import com.frossini.proyectologin.util.ClienteSerializer;
import com.frossini.proyectologin.util.TareaSerializer;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivityClientes extends Activity 
{
	private ClientesAdapter adapter;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main_clientes);
			

		Button nuevocliente = (Button) findViewById(R.id.btnnuevocliente);
		nuevocliente.setOnClickListener(new OnClickListener() 
		{
			@Override
			public void onClick(View v)
			{
				Intent llamarnueva = new Intent(MainActivityClientes.this,AltaClienteActivity.class); // llama a la activity de cliente
				startActivityForResult(llamarnueva, 0); 
			}
		});
		
		
		ListView lista = (ListView) findViewById(R.id.lvclientes);
		adapter = new ClientesAdapter(this);
		lista.setAdapter(adapter);
		lista.setOnItemClickListener(new OnItemClickListener() 
		{

			@Override
			public void onItemClick(AdapterView<?> parent , View view, int pos,	long id) 
			{
				Cliente cliente = (Cliente) parent.getItemAtPosition(pos);
				Intent intent = new Intent(MainActivityClientes.this ,DetalleTareaActivity.class );
				intent.putExtra(ExtraKeys.S_CLIENTE, cliente);
				//startActivity(intent);
			}
		});
		
		
		ArrayList<Cliente> clientes = ClienteSerializer.load(this);
		
	   
		DataProvider datajson = new DataProvider() ;
		clientes.addAll( datajson.getcliente())  ;
		if(clientes!=null)
		{
			for (Cliente cliente:clientes)
			{
				adapter.add(cliente);
			}
			//actualizarCantidadTareas();
		}
		registerForContextMenu(lista);
	}
	
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if(resultCode==RESULT_OK){
			if(requestCode==0){
				ArrayList<Cliente> clientes = ClienteSerializer.load(this);
				if(clientes!=null)
				{
					adapter.clear();
					for (Cliente cliente:clientes)
					{
						adapter.add(cliente);
					}
					//actualizarCantidadTareas();
				}				
			}
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) 
	{
		//Inflate the menu; this adds items to the action bar if it is present.
		//getMenuInflater().inflate(R.menu.talleres, menu);
		return true;
	}   
	
	@Override
    public boolean onOptionsItemSelected(MenuItem item) 
    {
    	String url = "";
    	Intent i= null;
    	switch(item.getItemId())
    	{
    		case R.id.action_settings:
	    		url = "http://www.lavozdelinterior.com.ar";
	    		i = new Intent(Intent.ACTION_VIEW);
	    		i.setData(Uri.parse(url));
	    		startActivity(i);
	    		break; //ojo, usar esto sino sigue para abajo.
    		
    		case R.id.opcion_sgc:
	    		url = "http://64.76.121.154/sgc";
	    		i = new Intent(Intent.ACTION_VIEW);
	    		i.setData(Uri.parse(url));
	    		startActivity(i);
	    		break; //ojo, usar esto sino sigue para abajo.
       		case R.id.opcion_contactos:
	    		url = "http://64.76.121.154/sgc/ADMContactos.asp";
	    		i = new Intent(Intent.ACTION_VIEW);
	    		i.setData(Uri.parse(url));
	    		startActivity(i);
	    		break; //ojo, usar esto sino sigue para abajo.	 
       		case R.id.opcion_ProgramarTarea:
	    		url = "http://64.76.121.154/sgc/GenerarTareaGerencia.asp?vienedirecto='SI'";
	    		i = new Intent(Intent.ACTION_VIEW);
	    		i.setData(Uri.parse(url));
	    		startActivity(i);
	    		break; //ojo, usar esto sino sigue para abajo.		   
       		case R.id.opcion_NuevaTarea:
	    		url = "http://64.76.121.154/sgc/GenerarTareaNueva.asp?vienedirecto='SI'";
	    		i = new Intent(Intent.ACTION_VIEW);
	    		i.setData(Uri.parse(url));
	    		startActivity(i);
	    		break; //ojo, usar esto sino sigue para abajo. 
      		case R.id.opcion_eliminarlista:
      			eliminartodos();
	    		break; //ojo, usar esto sino sigue para abajo.
      		case R.id.opcion_enviar_email:
      			enviarEmail();
      			break;
	    		
    	}
    	return super.onOptionsItemSelected(item);
    }
	
	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
		//getMenuInflater().inflate(R.menu.lista_tareas_context, menu);
		
	}
	@Override
	public boolean onContextItemSelected(MenuItem item) 
	{
		AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
		switch (item.getItemId())
		{
		
		case R.id.action_eliminar:
			//AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
			eliminar(info.position);
			return true;
		case R.id.action_enviarmail:
			//AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
			enviarmail(info.position);
			return true;
		default:
			return super.onContextItemSelected(item);
		}
		
	}
	private void eliminar (int position) {
		Cliente cliente = adapter.getItem(position);
		adapter.remove(cliente);
		ClienteSerializer.delete(this, cliente);
		//actualizarCantidadTareas();
	}
	private void enviarmail (int position) {
		Cliente cliente = adapter.getItem(position);
		
		enviarEmailregistro(cliente);
	}
	private void eliminartodos()
	{
		adapter.clear();
		ClienteSerializer.deleteall(this);
		//actualizarCantidadTareas();
	}
	
	private void actualizarCantidadTareas(){
		int cantidad = adapter.getCount();
	//	txt_cantidad_cli.setText(getResources().getString(R.string.cantidadtareas1)+" "+cantidad);
	}
	
	private void enviarEmail()
	{
		StringBuilder sb = new StringBuilder();
		
		for(int i=0; i<adapter.getCount(); i++)
		{
			sb.append(adapter.getItem(i).getIdCliente());
			sb.append("\n");
			sb.append(adapter.getItem(i).getNombre());
			sb.append("\n\n");
		}
		
		Intent intent = new Intent(Intent.ACTION_SENDTO); // it's not ACTION_SEND
		intent.setType("text/plain");
		intent.putExtra(Intent.EXTRA_SUBJECT, "Cliente ");
		intent.putExtra(Intent.EXTRA_TEXT, sb.toString());
		intent.setData(Uri.parse("mailto:sgcoficina@gmail.com")); // or just "mailto:" for blank
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this will make such that when user returns to your app, your app is displayed, instead of the email app.
		startActivity(intent);
	}
	private void enviarEmailregistro(Cliente xcliente)
	{
		StringBuilder sb = new StringBuilder();
		
		sb.append("Nombre :" + xcliente.getNombre().toString() + "\n");
	
		Intent intent = new Intent(Intent.ACTION_SENDTO); // it's not ACTION_SEND
		intent.setType("text/plain");
		intent.putExtra(Intent.EXTRA_SUBJECT, "Tareas para cargar");
		intent.putExtra(Intent.EXTRA_TEXT, sb.toString());
		intent.setData(Uri.parse("mailto:adribrarda@yahoo.com.ar")); // or just "mailto:" for blank
		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this will make such that when user returns to your app, your app is displayed, instead of the email app.
		startActivity(intent);
	}
}
